home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / py_compile.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  126 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import __builtin__
  5. import imp
  6. import marshal
  7. import os
  8. import sys
  9. import traceback
  10. MAGIC = imp.get_magic()
  11. __all__ = [
  12.     'compile',
  13.     'main',
  14.     'PyCompileError']
  15.  
  16. class PyCompileError(Exception):
  17.     
  18.     def __init__(self, exc_type, exc_value, file, msg = ''):
  19.         exc_type_name = exc_type.__name__
  20.         if exc_type is SyntaxError:
  21.             tbtext = ''.join(traceback.format_exception_only(exc_type, exc_value))
  22.             errmsg = tbtext.replace('File "<string>"', 'File "%s"' % file)
  23.         else:
  24.             errmsg = 'Sorry: %s: %s' % (exc_type_name, exc_value)
  25.         if not msg:
  26.             pass
  27.         Exception.__init__(self, errmsg, exc_type_name, exc_value, file)
  28.         self.exc_type_name = exc_type_name
  29.         self.exc_value = exc_value
  30.         self.file = file
  31.         if not msg:
  32.             pass
  33.         self.msg = errmsg
  34.  
  35.     
  36.     def __str__(self):
  37.         return self.msg
  38.  
  39.  
  40. if os.name == 'mac':
  41.     import MacOS
  42.     
  43.     def set_creator_type(file):
  44.         MacOS.SetCreatorAndType(file, 'Pyth', 'PYC ')
  45.  
  46. else:
  47.     
  48.     def set_creator_type(file):
  49.         pass
  50.  
  51.  
  52. def wr_long(f, x):
  53.     f.write(chr(x & 255))
  54.     f.write(chr(x >> 8 & 255))
  55.     f.write(chr(x >> 16 & 255))
  56.     f.write(chr(x >> 24 & 255))
  57.  
  58.  
  59. def compile(file, cfile = None, dfile = None, doraise = False):
  60.     f = open(file, 'U')
  61.     
  62.     try:
  63.         timestamp = long(os.fstat(f.fileno()).st_mtime)
  64.     except AttributeError:
  65.         timestamp = long(os.stat(file).st_mtime)
  66.  
  67.     codestring = f.read()
  68.     f.close()
  69.     if codestring and codestring[-1] != '\n':
  70.         codestring = codestring + '\n'
  71.     
  72.     
  73.     try:
  74.         if not dfile:
  75.             pass
  76.         codeobject = __builtin__.compile(codestring, file, 'exec')
  77.     except Exception:
  78.         err = None
  79.         if not dfile:
  80.             pass
  81.         py_exc = PyCompileError(err.__class__, err.args, file)
  82.         if doraise:
  83.             raise py_exc
  84.         else:
  85.             sys.stderr.write(py_exc.msg + '\n')
  86.             return None
  87.     except:
  88.         doraise
  89.  
  90.     if cfile is None:
  91.         if not __debug__ or 'c':
  92.             pass
  93.         cfile = file + 'o'
  94.     
  95.     fc = open(cfile, 'wb')
  96.     fc.write('\x00\x00\x00\x00')
  97.     wr_long(fc, timestamp)
  98.     marshal.dump(codeobject, fc)
  99.     fc.flush()
  100.     fc.seek(0, 0)
  101.     fc.write(MAGIC)
  102.     fc.close()
  103.     set_creator_type(cfile)
  104.  
  105.  
  106. def main(args = None):
  107.     if args is None:
  108.         args = sys.argv[1:]
  109.     
  110.     for filename in args:
  111.         
  112.         try:
  113.             compile(filename, doraise = True)
  114.         continue
  115.         except PyCompileError:
  116.             err = None
  117.             sys.stderr.write(err.msg)
  118.             continue
  119.         
  120.  
  121.     
  122.  
  123. if __name__ == '__main__':
  124.     main()
  125.  
  126.